import { RoutesAlias } from '../routesAlias'
import { AppRouteRecord } from '@/types/router'

/**
 * 菜单列表、异步路由
 *
 * 支持两种模式:
 * 前端静态配置 - 直接使用本文件中定义的路由配置
 * 后端动态配置 - 后端返回菜单数据，前端解析生成路由
 *
 * 菜单标题（title）:
 * 可以是 i18n 的 key，也可以是字符串，比如：'用户列表'
 *
 * RoutesAlias.Layout 指向的是布局组件，后端返回的菜单数据中，component 字段需要指向 /index/index
 * 路由元数据（meta）：异步路由在 asyncRoutes 中配置，静态路由在 staticRoutes 中配置
 */
export const asyncRoutes: AppRouteRecord[] = [
  {
    name: 'Dashboard',
    path: '/dashboard',
    component: RoutesAlias.Layout,
    meta: {
      title: '题目练习',
      icon: '&#xe626;'
    },
    children: [
      {
        path: 'console',
        name: 'Console',
        component: RoutesAlias.Dashboard,
        meta: {
          title: '题目练习',
          keepAlive: false,
          fixedTab: true
        }
      }
    ]
  },
  {
    path: '/subject',
    name: 'Subject',
    component: RoutesAlias.Layout,
    meta: {
      title: '练习管理',
      icon: '&#xe693;'
    },
    children: [
      {
        path: 'hostory',
        name: 'History',
        component: RoutesAlias.SubjectHistory,
        meta: {
          title: '练习历史',
          keepAlive: true
        }
      }
    ]
  },
  {
    path: '/user',
    name: 'User',
    component: RoutesAlias.Layout,
    meta: {
      title: '个人中心',
      icon: '&#xe734;'
    },
    children: [
      {
        path: 'info',
        name: 'UserInfo',
        component: RoutesAlias.UserInfo,
        meta: {
          title: '基本信息',
          keepAlive: true
        }
      },
      {
        path: 'changepwd',
        name: 'UserChangePwd',
        component: RoutesAlias.UserChangePassword,
        meta: {
          title: '修改密码',
          keepAlive: true
        }
      }
    ]
  }
]
